package org.ligson.spark.rdd.demo;

import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.ligson.spark.util.SparkContextUtil;

import java.util.Arrays;
import java.util.Iterator;

public class WordCount {
    public static void main(String[] args) {
        JavaSparkContext jsc = SparkContextUtil.getLocalContext();
        JavaRDD<String> pom = jsc.textFile("./src/main/resources/text.txt");
        System.out.println(pom.count());
        //将函数应用于RDD中的每个元素，将返回的迭代器的所有内容构成新的RDD，通常用来切分单词。与map的区别是：这个函数返回的值是list的一个，去除原有的格式
        JavaRDD<String> words = pom.flatMap((FlatMapFunction<String, String>) s -> Arrays.asList(s.split(" ")).iterator());
        System.out.println(words.count());
    }
}
